﻿using System;
using System.Threading;
using Memento.Game;

namespace Memento
{
    class Program
    {
        static void Main(string[] args)
        {
            Gamer gamer = new Gamer(100);
            Game.Memento memento = gamer.CreateMemento();

            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine("=== " + i);
                Console.WriteLine("現状:" + gamer);

                gamer.Bet();

                Console.WriteLine("所持金は" + gamer.GetMoney() + "円になりました。");

                // Mementoの取り扱いの決定
                if (gamer.GetMoney() > memento.GetMoney())
                {
                    Console.WriteLine("    （だいぶ増えたので、現在の状態を保存しておこう）");
                    memento = gamer.CreateMemento();
                }
                else if (gamer.GetMoney() < memento.GetMoney() / 2)
                {
                    Console.WriteLine("    （だいぶ減ったので、以前の状態に復帰しよう）");
                    gamer.RestoreMemento(memento);
                }

                // 時間待ち
                try
                {
                    Thread.Sleep(1000);
                }
                catch (Exception e)
                {
                }

                Console.WriteLine();
            }
        }
    }
}
